サムネール上にポインタを移動させると拡大画像を表示する
今週は、ちょっと上級者向けのJavaScriptテクニックを一つ紹介します。紹介するのは「サムネール上にポインタを移動すると、その拡大画像を表示させる方法」です。多くの写真を紹介するページなどに活用できると思います。

→ 画像の準備と画像表示領域の作成
 
まずは掲載するすべての画像について、サムネール用と拡大用の2種類を用意します。今回の例では、サムネール用を「img?s.jpg」、拡大用を「img?.jpg」としました(「?」の部分には数字が入る)。ここで注意すべきポイントは、サムネールと拡大画像の表示サイズを統一することです。同じサイズで画像を作成しておくと、ページの見た目を美しく整えることができます。続いて、ページのデザインを作成します。これは、拡大画像用の表示領域を一つ、サムネールを掲載する写真の数だけ配置すればOKです。拡大画像用の表示領域には、とりあえず一番目の画像を表示しておけばよいでしょう。また、拡大画像用の表示領域にはname属性で名前を付けておきます。
<HTML>
<HEAD>
  <TITLE>初めてのホームページ作成</TITLE>
</HEAD>

<BODY>
<DIV align="center"> <IMG src="img01.jpg" name="flame">
<BR>
<BR>
<IMG src="img01s.jpg">
<IMG src="img02s.jpg">
<IMG src="img03s.jpg">
<IMG src="img04s.jpg">
<IMG src="img05s.jpg">
</DIV>
</BODY>

</HTML>


→ 自作関数の呼び出し
 
ページのデザインが完成したら、各サムネール(IMGタグ)にJavaScript関数「Change」を呼び出す記述を追加しましょう。これにはonMouseOverイベントを利用します。また、どのサムネール上にポインタが移動したのか識別できるように、個別の引数(今回の例では1〜5)を設定しておきます。
<IMG src="img01s.jpg" onMouseOver="change(1)">
<IMG src="img02s.jpg" onMouseOver="change(2)">
<IMG src="img03s.jpg" onMouseOver="change(3)">
<IMG src="img04s.jpg" onMouseOver="change(4)">
<IMG src="img05s.jpg" onMouseOver="change(5)">
上記のように、サムネール表示にonMouseOverイベントを追加します。


→ 自作関数の作成
 
あとは、JavaScript関数「Change」を自作するだけでページが完成します。if文を使って引数ごとに処理方法を変化させましょう。といっても、これは表示する拡大画像のファイル名を変更するだけでOKです。なお、表示する拡大画像は、document.(拡大画像領域の名前).src="(ファイル名)"で変更できます。
<HTML>
<HEAD>
  <TITLE>初めてのホームページ作成</TITLE>
</HEAD>

<SCRIPT language="JavaScript">
<!--
function change(num){
  if(num==1) document.flame.src="img01.jpg";
  if(num==2) document.flame.src="img02.jpg";
  if(num==3) document.flame.src="img03.jpg";
  if(num==4) document.flame.src="img04.jpg";
  if(num==5) document.flame.src="img05.jpg";
}
// -->
</SCRIPT>

<BODY>
<DIV align="center">
サムネール上にマウスポインタを移動すると、画像が拡大表示されます。<BR>
<BR>
<IMG src="img01.jpg" name="flame"><BR>
<BR>
<BR>
<IMG src="img01s.jpg" onMouseOver="change(1)">
<IMG src="img02s.jpg" onMouseOver="change(2)">
<IMG src="img03s.jpg" onMouseOver="change(3)">
<IMG src="img04s.jpg" onMouseOver="change(4)">
<IMG src="img05s.jpg" onMouseOver="change(5)">
</DIV>
</BODY>

</HTML>


G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMIT1~] COiq COsI